<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>json数据格式</title>
</head>

<body>
  <script>
    /*
      JSON: JavaScript Object Notation(JavaScript 对象表示法)
      它是存储和交换文本信息的语法，类似 XML
      它比 XML 更小、更快，更易解析

      JSON的本质: 一种特殊格式的字符串

      JSON数据可以在script标签中定义,也可以写在外部文件中,这个外部文件就是xxx.json数据文件

      用途:
      1.存储数据
      2.作为跨平台数据交换载体

      JSON语法:
      单个对象    {"属性":"值","属性":"值","属性":"值",...}
      多个对象    [{"属性":"值","属性":"值","属性":"值",...},{"属性":"值","属性":"值","属性":"值",...},{"属性":"值","属性":"值","属性":"值",...},...]

      JSON和Javascript相互转换:
      JSON ==> JS     JSON.parse(json)
                      eval('(' + json + ')')    注意:需要在json的前后补充()

      JS ==> JSON     JSON.stringify(js对象)                
      
      注意: 
      JSON数据格式中,属性和属性值都要使用双引号修饰,数值为数字时,可以省略!
    */
    //JS对象
    /* const user = {
      username: 'admin',
      password: '123'
      console.log(user.username);
    } */

    //JSON对象
    const userJson = '{"username": "admin", "password": "123", "age":25}'
    const usersJson = '[{"username": "admin1", "password": "123", "age":25},{"username": "admin2", "password": "456", "age":21},{"username": "admin3", "password": "789", "age":27}]'

    //把JSON对象转换成JS对象
    const user = JSON.parse(userJson)
    //另一种转换方式
    //const user = eval('(' + userJson + ')')
    console.log(user)
    console.log(user.username, user.password, user.age)

    const users = JSON.parse(usersJson)
    console.log(users)

    //JS对象转换成JSON
    let jsonStr = JSON.stringify(users)
    console.log(jsonStr)
  </script>
</body>

</html>